package top.ddandang.blog.service;

import top.ddandang.blog.model.query.PageBean;
import top.ddandang.blog.model.pojo.Categories;
import com.baomidou.mybatisplus.extension.service.IService;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author D
 * @since 2020-06-23
 */
public interface CategoriesService extends IService<Categories> {

    /**
     * 增加分类 不包含图片
     * @param name 分类名
     * @param description 分类描述
     */
    void insertCategories (String name, String description);

    /**
     *  上传图片到OSS
     * @param file 分类图片
     * @return 图片地址
     */
    String insertCategoriesImage (MultipartFile file);

    /**
     *  增加分类 包含图片
     * @param name 分类名
     * @param description 分类描述
     * @param image 分类图片地址
     */
    void insertCategories(String name, String description, String image);


    /**
     *  分页获取分类信息
     * @param pageBean 分页实体类
     * @return 分类List
     */
    List<Categories> listCategory(PageBean pageBean);


    /**
     *  获取全部要分类信息
     * @return 分类List
     */
    List<Categories> allCategory();

    /**
     *  更新分类的图片
     * @param categoryId 分类Id
     * @param imageUrl  图片地址
     * @return 是否更新成功
     */
    int updateCategoryImage(Integer categoryId, String imageUrl);

    /**
     *  更新分类的信息
     * @param categoryId 分类Id
     * @param name 分离的名称
     * @param description 分类的描述
     * @return 是否更新成功
     */
    int updateCategory(Integer categoryId, String name, String description);

    /**
     * 更新分类中的文章数量
     * @param categoryId 分类Id
     * @param add 是否是增加
     */
    void updateArticleAmount(Integer categoryId, Boolean add);


}
